﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Facebook;
using haber.classes;
using Twitterizer;

namespace haber
{
    public partial class zamanla : System.Web.UI.Page
    {
        long facebookToplam = 0;
        long twitterToplam = 0;
        protected void Page_Load(object sender, EventArgs e)
        {
            facebookToplamiGetir();
            twitterToplamiGetir();
            Response.Write("Kullanıcı Sayıları Güncellendi.!");
        }

        public void twitterToplamiGetir()
        {
            using (dcHaberDataContext dc = new dcHaberDataContext())
            {
                var kat = from k in dc.HaberKategorileris
                          where k.TwitterAccessTokenSecret != null
                          select k;
                foreach (var hk in kat)
                {
                    twitterOauth to = new twitterOauth();
                    OAuthTokens tokens = new OAuthTokens();
                    tokens.ConsumerKey = to.ConsumerKey;
                    tokens.ConsumerSecret = to.ConsumerSecret;
                    tokens.AccessToken = hk.TwitterAccessToken;
                    tokens.AccessTokenSecret = hk.TwitterAccessTokenSecret;
                    TwitterResponse<TwitterUser> twitUser = TwitterUser.Show(tokens, hk.TwitterScreenName);
                    if (twitUser.Result == RequestResult.Success)
                    {
                        twitterToplam += (twitUser.ResponseObject.NumberOfFollowers.HasValue ? twitUser.ResponseObject.NumberOfFollowers.Value : 0);

                    }
                    else
                    {
                        // twitUser.ErrorMessage;
                        // return null;
                    }
                }

                var tanimlar = from t in dc.Tanimlars
                               where t.Tanım == "TWITTOPLAM"
                               select t;
                tanimlar.First().Parametre = twitterToplam.ToString();
                dc.SubmitChanges();
               
            }
        }

        public void facebookToplamiGetir()
        {
            using (dcHaberDataContext dc = new dcHaberDataContext())
            {
                var kategoriler = from k in dc.HaberKategorileris
                                  where k.FBToken != null
                                  select k;
                foreach (var kat in kategoriler)
                {
                    var fb = new FacebookClient(kat.FBToken);
                    string query = string.Format("SELECT friend_count FROM user WHERE uid='{0}'", kat.FBUID);
                    dynamic result = fb.Query(query);
                    if (result[0]["friend_count"] > 0)
                    {
                        facebookToplam += result[0]["friend_count"];
                    }
                    if (kat.FBPageID != null)
                    {
                        query = string.Format("SELECT fan_count FROM page WHERE page_id='{0}'", kat.FBPageID);
                        result = fb.Query(query);
                        if (result[0]["fan_count"]> 0)
                        {
                            facebookToplam += result[0]["fan_count"];
                        }
                    }
                }
                var tanimlar = from t in dc.Tanimlars
                               where t.Tanım == "FACEBOOKTOPLAM"
                               select t;
                tanimlar.First().Parametre = facebookToplam.ToString();
                dc.SubmitChanges();
                
            }
        }
    }
}